﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BizScore.Model;
using Office;

namespace BizScore
{




    /********************************************************************************************************
     *                                                                                                      *
     *      根据州级的《大理州2016年事业单位公开招聘报名交费数据及岗位取消调减情况（含双岗位报名）》        *    
     *      获得对应岗位实际招聘的人数                                                                      *
     *      岗位代码：匹配列 A "报考职位" 中的数字进行提取                                                  *
     *      实际招聘数量 匹配列 J "岗位最终拟招聘人数"                                                      *
     *                                                                                                      *
     *                                                                                                      *
     ********************************************************************************************************
     */





    /// <summary>
    /// 获得最终岗位的实际需要人数
    /// </summary>
    public class GetPostFinalNumber
    {
        protected static GetPostFinalNumber instance = new GetPostFinalNumber();

        protected static string excelPath = null;

        protected static ExcelSingle excel = new ExcelSingle();


        public static GetPostFinalNumber GetInstance(string path)
        {

            excelPath = path;
            return instance;
        }

        protected GetPostFinalNumber() { }

        public void OpenExcel()
        {
            excel.OpenExcel(excelPath);
            excel.OpenExcelWorksheet("缴费开考数据");
        }


        public void CloseExcel()
        {
            excel.CloseAllExcel();
        }


        /// <summary>
        /// 异步获得所有的岗位信息
        /// </summary>
        /// <returns></returns>
        public async Task<IEnumerable<PostFinaNumber>> GetAllPostInfoAsync()
        {
            await Task.Run<List<PostFinaNumber>>(() => {
                return GetAllPostInfo().ToList();
            });
            return new PostFinaNumber[0];
        }


        /// <summary>
        /// 获得所有的岗位信息
        /// </summary>
        /// <returns></returns>
        public IEnumerable<PostFinaNumber> GetAllPostInfo()
        {
            List<PostFinaNumber> list = new List<PostFinaNumber>();

            //打开excel
            

            //A列查找 报考职位
            //J 列查找 岗位最终拟招聘人数   
            int i = 2;
            if (!(string.Equals("报考职位", excel.GetData("A1", null).ToString().Trim())) && (string.Equals("岗位最终拟招聘人数", excel.GetData("J1", null).ToString().Trim())))
            {
                return list;
            }
            PostFinaNumber entity = null;
            while (true)
            {
                entity = new PostFinaNumber();
                entity.BKZW = excel.GetData("A" + i.ToString(), null).ToString();
                if (string.IsNullOrEmpty(entity.PostID)) break;
                entity.FinalNumber = int.Parse(excel.GetData("J" + i.ToString(), null).ToString());
                list.Add(entity);
                i++;
            }


            excel.CloseExcel(false);
           
            return list;
        }
    }
}
